package com.crm.model.entity.productManager;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class CustomerProductExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public CustomerProductExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andCustomerProductIdIsNull() {
            addCriterion("customer_product_id is null");
            return (Criteria) this;
        }

        public Criteria andCustomerProductIdIsNotNull() {
            addCriterion("customer_product_id is not null");
            return (Criteria) this;
        }

        public Criteria andCustomerProductIdEqualTo(String value) {
            addCriterion("customer_product_id =", value, "customerProductId");
            return (Criteria) this;
        }

        public Criteria andCustomerProductIdNotEqualTo(String value) {
            addCriterion("customer_product_id <>", value, "customerProductId");
            return (Criteria) this;
        }

        public Criteria andCustomerProductIdGreaterThan(String value) {
            addCriterion("customer_product_id >", value, "customerProductId");
            return (Criteria) this;
        }

        public Criteria andCustomerProductIdGreaterThanOrEqualTo(String value) {
            addCriterion("customer_product_id >=", value, "customerProductId");
            return (Criteria) this;
        }

        public Criteria andCustomerProductIdLessThan(String value) {
            addCriterion("customer_product_id <", value, "customerProductId");
            return (Criteria) this;
        }

        public Criteria andCustomerProductIdLessThanOrEqualTo(String value) {
            addCriterion("customer_product_id <=", value, "customerProductId");
            return (Criteria) this;
        }

        public Criteria andCustomerProductIdLike(String value) {
            addCriterion("customer_product_id like", value, "customerProductId");
            return (Criteria) this;
        }

        public Criteria andCustomerProductIdNotLike(String value) {
            addCriterion("customer_product_id not like", value, "customerProductId");
            return (Criteria) this;
        }

        public Criteria andCustomerProductIdIn(List<String> values) {
            addCriterion("customer_product_id in", values, "customerProductId");
            return (Criteria) this;
        }

        public Criteria andCustomerProductIdNotIn(List<String> values) {
            addCriterion("customer_product_id not in", values, "customerProductId");
            return (Criteria) this;
        }

        public Criteria andCustomerProductIdBetween(String value1, String value2) {
            addCriterion("customer_product_id between", value1, value2, "customerProductId");
            return (Criteria) this;
        }

        public Criteria andCustomerProductIdNotBetween(String value1, String value2) {
            addCriterion("customer_product_id not between", value1, value2, "customerProductId");
            return (Criteria) this;
        }

        public Criteria andProductCodeIsNull() {
            addCriterion("product_code is null");
            return (Criteria) this;
        }

        public Criteria andProductCodeIsNotNull() {
            addCriterion("product_code is not null");
            return (Criteria) this;
        }

        public Criteria andProductCodeEqualTo(String value) {
            addCriterion("product_code =", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotEqualTo(String value) {
            addCriterion("product_code <>", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeGreaterThan(String value) {
            addCriterion("product_code >", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeGreaterThanOrEqualTo(String value) {
            addCriterion("product_code >=", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeLessThan(String value) {
            addCriterion("product_code <", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeLessThanOrEqualTo(String value) {
            addCriterion("product_code <=", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeLike(String value) {
            addCriterion("product_code like", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotLike(String value) {
            addCriterion("product_code not like", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeIn(List<String> values) {
            addCriterion("product_code in", values, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotIn(List<String> values) {
            addCriterion("product_code not in", values, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeBetween(String value1, String value2) {
            addCriterion("product_code between", value1, value2, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotBetween(String value1, String value2) {
            addCriterion("product_code not between", value1, value2, "productCode");
            return (Criteria) this;
        }

        public Criteria andServiceClassificationIsNull() {
            addCriterion("service_classification is null");
            return (Criteria) this;
        }

        public Criteria andServiceClassificationIsNotNull() {
            addCriterion("service_classification is not null");
            return (Criteria) this;
        }

        public Criteria andServiceClassificationEqualTo(String value) {
            addCriterion("service_classification =", value, "serviceClassification");
            return (Criteria) this;
        }

        public Criteria andServiceClassificationNotEqualTo(String value) {
            addCriterion("service_classification <>", value, "serviceClassification");
            return (Criteria) this;
        }

        public Criteria andServiceClassificationGreaterThan(String value) {
            addCriterion("service_classification >", value, "serviceClassification");
            return (Criteria) this;
        }

        public Criteria andServiceClassificationGreaterThanOrEqualTo(String value) {
            addCriterion("service_classification >=", value, "serviceClassification");
            return (Criteria) this;
        }

        public Criteria andServiceClassificationLessThan(String value) {
            addCriterion("service_classification <", value, "serviceClassification");
            return (Criteria) this;
        }

        public Criteria andServiceClassificationLessThanOrEqualTo(String value) {
            addCriterion("service_classification <=", value, "serviceClassification");
            return (Criteria) this;
        }

        public Criteria andServiceClassificationLike(String value) {
            addCriterion("service_classification like", value, "serviceClassification");
            return (Criteria) this;
        }

        public Criteria andServiceClassificationNotLike(String value) {
            addCriterion("service_classification not like", value, "serviceClassification");
            return (Criteria) this;
        }

        public Criteria andServiceClassificationIn(List<String> values) {
            addCriterion("service_classification in", values, "serviceClassification");
            return (Criteria) this;
        }

        public Criteria andServiceClassificationNotIn(List<String> values) {
            addCriterion("service_classification not in", values, "serviceClassification");
            return (Criteria) this;
        }

        public Criteria andServiceClassificationBetween(String value1, String value2) {
            addCriterion("service_classification between", value1, value2, "serviceClassification");
            return (Criteria) this;
        }

        public Criteria andServiceClassificationNotBetween(String value1, String value2) {
            addCriterion("service_classification not between", value1, value2, "serviceClassification");
            return (Criteria) this;
        }

        public Criteria andProductTagIsNull() {
            addCriterion("product_tag is null");
            return (Criteria) this;
        }

        public Criteria andProductTagIsNotNull() {
            addCriterion("product_tag is not null");
            return (Criteria) this;
        }

        public Criteria andProductTagEqualTo(String value) {
            addCriterion("product_tag =", value, "productTag");
            return (Criteria) this;
        }

        public Criteria andProductTagNotEqualTo(String value) {
            addCriterion("product_tag <>", value, "productTag");
            return (Criteria) this;
        }

        public Criteria andProductTagGreaterThan(String value) {
            addCriterion("product_tag >", value, "productTag");
            return (Criteria) this;
        }

        public Criteria andProductTagGreaterThanOrEqualTo(String value) {
            addCriterion("product_tag >=", value, "productTag");
            return (Criteria) this;
        }

        public Criteria andProductTagLessThan(String value) {
            addCriterion("product_tag <", value, "productTag");
            return (Criteria) this;
        }

        public Criteria andProductTagLessThanOrEqualTo(String value) {
            addCriterion("product_tag <=", value, "productTag");
            return (Criteria) this;
        }

        public Criteria andProductTagLike(String value) {
            addCriterion("product_tag like", value, "productTag");
            return (Criteria) this;
        }

        public Criteria andProductTagNotLike(String value) {
            addCriterion("product_tag not like", value, "productTag");
            return (Criteria) this;
        }

        public Criteria andProductTagIn(List<String> values) {
            addCriterion("product_tag in", values, "productTag");
            return (Criteria) this;
        }

        public Criteria andProductTagNotIn(List<String> values) {
            addCriterion("product_tag not in", values, "productTag");
            return (Criteria) this;
        }

        public Criteria andProductTagBetween(String value1, String value2) {
            addCriterion("product_tag between", value1, value2, "productTag");
            return (Criteria) this;
        }

        public Criteria andProductTagNotBetween(String value1, String value2) {
            addCriterion("product_tag not between", value1, value2, "productTag");
            return (Criteria) this;
        }

        public Criteria andProductNameIsNull() {
            addCriterion("product_name is null");
            return (Criteria) this;
        }

        public Criteria andProductNameIsNotNull() {
            addCriterion("product_name is not null");
            return (Criteria) this;
        }

        public Criteria andProductNameEqualTo(String value) {
            addCriterion("product_name =", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotEqualTo(String value) {
            addCriterion("product_name <>", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameGreaterThan(String value) {
            addCriterion("product_name >", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameGreaterThanOrEqualTo(String value) {
            addCriterion("product_name >=", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLessThan(String value) {
            addCriterion("product_name <", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLessThanOrEqualTo(String value) {
            addCriterion("product_name <=", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLike(String value) {
            addCriterion("product_name like", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotLike(String value) {
            addCriterion("product_name not like", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameIn(List<String> values) {
            addCriterion("product_name in", values, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotIn(List<String> values) {
            addCriterion("product_name not in", values, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameBetween(String value1, String value2) {
            addCriterion("product_name between", value1, value2, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotBetween(String value1, String value2) {
            addCriterion("product_name not between", value1, value2, "productName");
            return (Criteria) this;
        }

        public Criteria andProductOriginalPriceIsNull() {
            addCriterion("product_original_price is null");
            return (Criteria) this;
        }

        public Criteria andProductOriginalPriceIsNotNull() {
            addCriterion("product_original_price is not null");
            return (Criteria) this;
        }

        public Criteria andProductOriginalPriceEqualTo(BigDecimal value) {
            addCriterion("product_original_price =", value, "productOriginalPrice");
            return (Criteria) this;
        }

        public Criteria andProductOriginalPriceNotEqualTo(BigDecimal value) {
            addCriterion("product_original_price <>", value, "productOriginalPrice");
            return (Criteria) this;
        }

        public Criteria andProductOriginalPriceGreaterThan(BigDecimal value) {
            addCriterion("product_original_price >", value, "productOriginalPrice");
            return (Criteria) this;
        }

        public Criteria andProductOriginalPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("product_original_price >=", value, "productOriginalPrice");
            return (Criteria) this;
        }

        public Criteria andProductOriginalPriceLessThan(BigDecimal value) {
            addCriterion("product_original_price <", value, "productOriginalPrice");
            return (Criteria) this;
        }

        public Criteria andProductOriginalPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("product_original_price <=", value, "productOriginalPrice");
            return (Criteria) this;
        }

        public Criteria andProductOriginalPriceIn(List<BigDecimal> values) {
            addCriterion("product_original_price in", values, "productOriginalPrice");
            return (Criteria) this;
        }

        public Criteria andProductOriginalPriceNotIn(List<BigDecimal> values) {
            addCriterion("product_original_price not in", values, "productOriginalPrice");
            return (Criteria) this;
        }

        public Criteria andProductOriginalPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("product_original_price between", value1, value2, "productOriginalPrice");
            return (Criteria) this;
        }

        public Criteria andProductOriginalPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("product_original_price not between", value1, value2, "productOriginalPrice");
            return (Criteria) this;
        }

        public Criteria andProductUnitPriceIsNull() {
            addCriterion("product_unit_price is null");
            return (Criteria) this;
        }

        public Criteria andProductUnitPriceIsNotNull() {
            addCriterion("product_unit_price is not null");
            return (Criteria) this;
        }

        public Criteria andProductUnitPriceEqualTo(BigDecimal value) {
            addCriterion("product_unit_price =", value, "productUnitPrice");
            return (Criteria) this;
        }

        public Criteria andProductUnitPriceNotEqualTo(BigDecimal value) {
            addCriterion("product_unit_price <>", value, "productUnitPrice");
            return (Criteria) this;
        }

        public Criteria andProductUnitPriceGreaterThan(BigDecimal value) {
            addCriterion("product_unit_price >", value, "productUnitPrice");
            return (Criteria) this;
        }

        public Criteria andProductUnitPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("product_unit_price >=", value, "productUnitPrice");
            return (Criteria) this;
        }

        public Criteria andProductUnitPriceLessThan(BigDecimal value) {
            addCriterion("product_unit_price <", value, "productUnitPrice");
            return (Criteria) this;
        }

        public Criteria andProductUnitPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("product_unit_price <=", value, "productUnitPrice");
            return (Criteria) this;
        }

        public Criteria andProductUnitPriceIn(List<BigDecimal> values) {
            addCriterion("product_unit_price in", values, "productUnitPrice");
            return (Criteria) this;
        }

        public Criteria andProductUnitPriceNotIn(List<BigDecimal> values) {
            addCriterion("product_unit_price not in", values, "productUnitPrice");
            return (Criteria) this;
        }

        public Criteria andProductUnitPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("product_unit_price between", value1, value2, "productUnitPrice");
            return (Criteria) this;
        }

        public Criteria andProductUnitPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("product_unit_price not between", value1, value2, "productUnitPrice");
            return (Criteria) this;
        }

        public Criteria andPerformanceConversionRatioIsNull() {
            addCriterion("performance_conversion_ratio is null");
            return (Criteria) this;
        }

        public Criteria andPerformanceConversionRatioIsNotNull() {
            addCriterion("performance_conversion_ratio is not null");
            return (Criteria) this;
        }

        public Criteria andPerformanceConversionRatioEqualTo(BigDecimal value) {
            addCriterion("performance_conversion_ratio =", value, "performanceConversionRatio");
            return (Criteria) this;
        }

        public Criteria andPerformanceConversionRatioNotEqualTo(BigDecimal value) {
            addCriterion("performance_conversion_ratio <>", value, "performanceConversionRatio");
            return (Criteria) this;
        }

        public Criteria andPerformanceConversionRatioGreaterThan(BigDecimal value) {
            addCriterion("performance_conversion_ratio >", value, "performanceConversionRatio");
            return (Criteria) this;
        }

        public Criteria andPerformanceConversionRatioGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("performance_conversion_ratio >=", value, "performanceConversionRatio");
            return (Criteria) this;
        }

        public Criteria andPerformanceConversionRatioLessThan(BigDecimal value) {
            addCriterion("performance_conversion_ratio <", value, "performanceConversionRatio");
            return (Criteria) this;
        }

        public Criteria andPerformanceConversionRatioLessThanOrEqualTo(BigDecimal value) {
            addCriterion("performance_conversion_ratio <=", value, "performanceConversionRatio");
            return (Criteria) this;
        }

        public Criteria andPerformanceConversionRatioIn(List<BigDecimal> values) {
            addCriterion("performance_conversion_ratio in", values, "performanceConversionRatio");
            return (Criteria) this;
        }

        public Criteria andPerformanceConversionRatioNotIn(List<BigDecimal> values) {
            addCriterion("performance_conversion_ratio not in", values, "performanceConversionRatio");
            return (Criteria) this;
        }

        public Criteria andPerformanceConversionRatioBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("performance_conversion_ratio between", value1, value2, "performanceConversionRatio");
            return (Criteria) this;
        }

        public Criteria andPerformanceConversionRatioNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("performance_conversion_ratio not between", value1, value2, "performanceConversionRatio");
            return (Criteria) this;
        }

        public Criteria andProductMemberPriceIsNull() {
            addCriterion("product_member_price is null");
            return (Criteria) this;
        }

        public Criteria andProductMemberPriceIsNotNull() {
            addCriterion("product_member_price is not null");
            return (Criteria) this;
        }

        public Criteria andProductMemberPriceEqualTo(BigDecimal value) {
            addCriterion("product_member_price =", value, "productMemberPrice");
            return (Criteria) this;
        }

        public Criteria andProductMemberPriceNotEqualTo(BigDecimal value) {
            addCriterion("product_member_price <>", value, "productMemberPrice");
            return (Criteria) this;
        }

        public Criteria andProductMemberPriceGreaterThan(BigDecimal value) {
            addCriterion("product_member_price >", value, "productMemberPrice");
            return (Criteria) this;
        }

        public Criteria andProductMemberPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("product_member_price >=", value, "productMemberPrice");
            return (Criteria) this;
        }

        public Criteria andProductMemberPriceLessThan(BigDecimal value) {
            addCriterion("product_member_price <", value, "productMemberPrice");
            return (Criteria) this;
        }

        public Criteria andProductMemberPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("product_member_price <=", value, "productMemberPrice");
            return (Criteria) this;
        }

        public Criteria andProductMemberPriceIn(List<BigDecimal> values) {
            addCriterion("product_member_price in", values, "productMemberPrice");
            return (Criteria) this;
        }

        public Criteria andProductMemberPriceNotIn(List<BigDecimal> values) {
            addCriterion("product_member_price not in", values, "productMemberPrice");
            return (Criteria) this;
        }

        public Criteria andProductMemberPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("product_member_price between", value1, value2, "productMemberPrice");
            return (Criteria) this;
        }

        public Criteria andProductMemberPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("product_member_price not between", value1, value2, "productMemberPrice");
            return (Criteria) this;
        }

        public Criteria andTopicIdIsNull() {
            addCriterion("topic_id is null");
            return (Criteria) this;
        }

        public Criteria andTopicIdIsNotNull() {
            addCriterion("topic_id is not null");
            return (Criteria) this;
        }

        public Criteria andTopicIdEqualTo(Integer value) {
            addCriterion("topic_id =", value, "topicId");
            return (Criteria) this;
        }

        public Criteria andTopicIdNotEqualTo(Integer value) {
            addCriterion("topic_id <>", value, "topicId");
            return (Criteria) this;
        }

        public Criteria andTopicIdGreaterThan(Integer value) {
            addCriterion("topic_id >", value, "topicId");
            return (Criteria) this;
        }

        public Criteria andTopicIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("topic_id >=", value, "topicId");
            return (Criteria) this;
        }

        public Criteria andTopicIdLessThan(Integer value) {
            addCriterion("topic_id <", value, "topicId");
            return (Criteria) this;
        }

        public Criteria andTopicIdLessThanOrEqualTo(Integer value) {
            addCriterion("topic_id <=", value, "topicId");
            return (Criteria) this;
        }

        public Criteria andTopicIdIn(List<Integer> values) {
            addCriterion("topic_id in", values, "topicId");
            return (Criteria) this;
        }

        public Criteria andTopicIdNotIn(List<Integer> values) {
            addCriterion("topic_id not in", values, "topicId");
            return (Criteria) this;
        }

        public Criteria andTopicIdBetween(Integer value1, Integer value2) {
            addCriterion("topic_id between", value1, value2, "topicId");
            return (Criteria) this;
        }

        public Criteria andTopicIdNotBetween(Integer value1, Integer value2) {
            addCriterion("topic_id not between", value1, value2, "topicId");
            return (Criteria) this;
        }

        public Criteria andStudyPeriodIsNull() {
            addCriterion("study_period is null");
            return (Criteria) this;
        }

        public Criteria andStudyPeriodIsNotNull() {
            addCriterion("study_period is not null");
            return (Criteria) this;
        }

        public Criteria andStudyPeriodEqualTo(String value) {
            addCriterion("study_period =", value, "studyPeriod");
            return (Criteria) this;
        }

        public Criteria andStudyPeriodNotEqualTo(String value) {
            addCriterion("study_period <>", value, "studyPeriod");
            return (Criteria) this;
        }

        public Criteria andStudyPeriodGreaterThan(String value) {
            addCriterion("study_period >", value, "studyPeriod");
            return (Criteria) this;
        }

        public Criteria andStudyPeriodGreaterThanOrEqualTo(String value) {
            addCriterion("study_period >=", value, "studyPeriod");
            return (Criteria) this;
        }

        public Criteria andStudyPeriodLessThan(String value) {
            addCriterion("study_period <", value, "studyPeriod");
            return (Criteria) this;
        }

        public Criteria andStudyPeriodLessThanOrEqualTo(String value) {
            addCriterion("study_period <=", value, "studyPeriod");
            return (Criteria) this;
        }

        public Criteria andStudyPeriodLike(String value) {
            addCriterion("study_period like", value, "studyPeriod");
            return (Criteria) this;
        }

        public Criteria andStudyPeriodNotLike(String value) {
            addCriterion("study_period not like", value, "studyPeriod");
            return (Criteria) this;
        }

        public Criteria andStudyPeriodIn(List<String> values) {
            addCriterion("study_period in", values, "studyPeriod");
            return (Criteria) this;
        }

        public Criteria andStudyPeriodNotIn(List<String> values) {
            addCriterion("study_period not in", values, "studyPeriod");
            return (Criteria) this;
        }

        public Criteria andStudyPeriodBetween(String value1, String value2) {
            addCriterion("study_period between", value1, value2, "studyPeriod");
            return (Criteria) this;
        }

        public Criteria andStudyPeriodNotBetween(String value1, String value2) {
            addCriterion("study_period not between", value1, value2, "studyPeriod");
            return (Criteria) this;
        }

        public Criteria andExchangeMethodIsNull() {
            addCriterion("exchange_method is null");
            return (Criteria) this;
        }

        public Criteria andExchangeMethodIsNotNull() {
            addCriterion("exchange_method is not null");
            return (Criteria) this;
        }

        public Criteria andExchangeMethodEqualTo(String value) {
            addCriterion("exchange_method =", value, "exchangeMethod");
            return (Criteria) this;
        }

        public Criteria andExchangeMethodNotEqualTo(String value) {
            addCriterion("exchange_method <>", value, "exchangeMethod");
            return (Criteria) this;
        }

        public Criteria andExchangeMethodGreaterThan(String value) {
            addCriterion("exchange_method >", value, "exchangeMethod");
            return (Criteria) this;
        }

        public Criteria andExchangeMethodGreaterThanOrEqualTo(String value) {
            addCriterion("exchange_method >=", value, "exchangeMethod");
            return (Criteria) this;
        }

        public Criteria andExchangeMethodLessThan(String value) {
            addCriterion("exchange_method <", value, "exchangeMethod");
            return (Criteria) this;
        }

        public Criteria andExchangeMethodLessThanOrEqualTo(String value) {
            addCriterion("exchange_method <=", value, "exchangeMethod");
            return (Criteria) this;
        }

        public Criteria andExchangeMethodLike(String value) {
            addCriterion("exchange_method like", value, "exchangeMethod");
            return (Criteria) this;
        }

        public Criteria andExchangeMethodNotLike(String value) {
            addCriterion("exchange_method not like", value, "exchangeMethod");
            return (Criteria) this;
        }

        public Criteria andExchangeMethodIn(List<String> values) {
            addCriterion("exchange_method in", values, "exchangeMethod");
            return (Criteria) this;
        }

        public Criteria andExchangeMethodNotIn(List<String> values) {
            addCriterion("exchange_method not in", values, "exchangeMethod");
            return (Criteria) this;
        }

        public Criteria andExchangeMethodBetween(String value1, String value2) {
            addCriterion("exchange_method between", value1, value2, "exchangeMethod");
            return (Criteria) this;
        }

        public Criteria andExchangeMethodNotBetween(String value1, String value2) {
            addCriterion("exchange_method not between", value1, value2, "exchangeMethod");
            return (Criteria) this;
        }

        public Criteria andShelfStatusIsNull() {
            addCriterion("shelf_status is null");
            return (Criteria) this;
        }

        public Criteria andShelfStatusIsNotNull() {
            addCriterion("shelf_status is not null");
            return (Criteria) this;
        }

        public Criteria andShelfStatusEqualTo(String value) {
            addCriterion("shelf_status =", value, "shelfStatus");
            return (Criteria) this;
        }

        public Criteria andShelfStatusNotEqualTo(String value) {
            addCriterion("shelf_status <>", value, "shelfStatus");
            return (Criteria) this;
        }

        public Criteria andShelfStatusGreaterThan(String value) {
            addCriterion("shelf_status >", value, "shelfStatus");
            return (Criteria) this;
        }

        public Criteria andShelfStatusGreaterThanOrEqualTo(String value) {
            addCriterion("shelf_status >=", value, "shelfStatus");
            return (Criteria) this;
        }

        public Criteria andShelfStatusLessThan(String value) {
            addCriterion("shelf_status <", value, "shelfStatus");
            return (Criteria) this;
        }

        public Criteria andShelfStatusLessThanOrEqualTo(String value) {
            addCriterion("shelf_status <=", value, "shelfStatus");
            return (Criteria) this;
        }

        public Criteria andShelfStatusLike(String value) {
            addCriterion("shelf_status like", value, "shelfStatus");
            return (Criteria) this;
        }

        public Criteria andShelfStatusNotLike(String value) {
            addCriterion("shelf_status not like", value, "shelfStatus");
            return (Criteria) this;
        }

        public Criteria andShelfStatusIn(List<String> values) {
            addCriterion("shelf_status in", values, "shelfStatus");
            return (Criteria) this;
        }

        public Criteria andShelfStatusNotIn(List<String> values) {
            addCriterion("shelf_status not in", values, "shelfStatus");
            return (Criteria) this;
        }

        public Criteria andShelfStatusBetween(String value1, String value2) {
            addCriterion("shelf_status between", value1, value2, "shelfStatus");
            return (Criteria) this;
        }

        public Criteria andShelfStatusNotBetween(String value1, String value2) {
            addCriterion("shelf_status not between", value1, value2, "shelfStatus");
            return (Criteria) this;
        }

        public Criteria andShelfTimeIsNull() {
            addCriterion("shelf_time is null");
            return (Criteria) this;
        }

        public Criteria andShelfTimeIsNotNull() {
            addCriterion("shelf_time is not null");
            return (Criteria) this;
        }

        public Criteria andShelfTimeEqualTo(Date value) {
            addCriterion("shelf_time =", value, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andShelfTimeNotEqualTo(Date value) {
            addCriterion("shelf_time <>", value, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andShelfTimeGreaterThan(Date value) {
            addCriterion("shelf_time >", value, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andShelfTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("shelf_time >=", value, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andShelfTimeLessThan(Date value) {
            addCriterion("shelf_time <", value, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andShelfTimeLessThanOrEqualTo(Date value) {
            addCriterion("shelf_time <=", value, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andShelfTimeIn(List<Date> values) {
            addCriterion("shelf_time in", values, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andShelfTimeNotIn(List<Date> values) {
            addCriterion("shelf_time not in", values, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andShelfTimeBetween(Date value1, Date value2) {
            addCriterion("shelf_time between", value1, value2, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andShelfTimeNotBetween(Date value1, Date value2) {
            addCriterion("shelf_time not between", value1, value2, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andOffShelfTimeIsNull() {
            addCriterion("off_shelf_time is null");
            return (Criteria) this;
        }

        public Criteria andOffShelfTimeIsNotNull() {
            addCriterion("off_shelf_time is not null");
            return (Criteria) this;
        }

        public Criteria andOffShelfTimeEqualTo(Date value) {
            addCriterion("off_shelf_time =", value, "offShelfTime");
            return (Criteria) this;
        }

        public Criteria andOffShelfTimeNotEqualTo(Date value) {
            addCriterion("off_shelf_time <>", value, "offShelfTime");
            return (Criteria) this;
        }

        public Criteria andOffShelfTimeGreaterThan(Date value) {
            addCriterion("off_shelf_time >", value, "offShelfTime");
            return (Criteria) this;
        }

        public Criteria andOffShelfTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("off_shelf_time >=", value, "offShelfTime");
            return (Criteria) this;
        }

        public Criteria andOffShelfTimeLessThan(Date value) {
            addCriterion("off_shelf_time <", value, "offShelfTime");
            return (Criteria) this;
        }

        public Criteria andOffShelfTimeLessThanOrEqualTo(Date value) {
            addCriterion("off_shelf_time <=", value, "offShelfTime");
            return (Criteria) this;
        }

        public Criteria andOffShelfTimeIn(List<Date> values) {
            addCriterion("off_shelf_time in", values, "offShelfTime");
            return (Criteria) this;
        }

        public Criteria andOffShelfTimeNotIn(List<Date> values) {
            addCriterion("off_shelf_time not in", values, "offShelfTime");
            return (Criteria) this;
        }

        public Criteria andOffShelfTimeBetween(Date value1, Date value2) {
            addCriterion("off_shelf_time between", value1, value2, "offShelfTime");
            return (Criteria) this;
        }

        public Criteria andOffShelfTimeNotBetween(Date value1, Date value2) {
            addCriterion("off_shelf_time not between", value1, value2, "offShelfTime");
            return (Criteria) this;
        }

        public Criteria andProductManualIsNull() {
            addCriterion("product_manual is null");
            return (Criteria) this;
        }

        public Criteria andProductManualIsNotNull() {
            addCriterion("product_manual is not null");
            return (Criteria) this;
        }

        public Criteria andProductManualEqualTo(String value) {
            addCriterion("product_manual =", value, "productManual");
            return (Criteria) this;
        }

        public Criteria andProductManualNotEqualTo(String value) {
            addCriterion("product_manual <>", value, "productManual");
            return (Criteria) this;
        }

        public Criteria andProductManualGreaterThan(String value) {
            addCriterion("product_manual >", value, "productManual");
            return (Criteria) this;
        }

        public Criteria andProductManualGreaterThanOrEqualTo(String value) {
            addCriterion("product_manual >=", value, "productManual");
            return (Criteria) this;
        }

        public Criteria andProductManualLessThan(String value) {
            addCriterion("product_manual <", value, "productManual");
            return (Criteria) this;
        }

        public Criteria andProductManualLessThanOrEqualTo(String value) {
            addCriterion("product_manual <=", value, "productManual");
            return (Criteria) this;
        }

        public Criteria andProductManualLike(String value) {
            addCriterion("product_manual like", value, "productManual");
            return (Criteria) this;
        }

        public Criteria andProductManualNotLike(String value) {
            addCriterion("product_manual not like", value, "productManual");
            return (Criteria) this;
        }

        public Criteria andProductManualIn(List<String> values) {
            addCriterion("product_manual in", values, "productManual");
            return (Criteria) this;
        }

        public Criteria andProductManualNotIn(List<String> values) {
            addCriterion("product_manual not in", values, "productManual");
            return (Criteria) this;
        }

        public Criteria andProductManualBetween(String value1, String value2) {
            addCriterion("product_manual between", value1, value2, "productManual");
            return (Criteria) this;
        }

        public Criteria andProductManualNotBetween(String value1, String value2) {
            addCriterion("product_manual not between", value1, value2, "productManual");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusIsNull() {
            addCriterion("delete_status is null");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusIsNotNull() {
            addCriterion("delete_status is not null");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusEqualTo(Short value) {
            addCriterion("delete_status =", value, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusNotEqualTo(Short value) {
            addCriterion("delete_status <>", value, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusGreaterThan(Short value) {
            addCriterion("delete_status >", value, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusGreaterThanOrEqualTo(Short value) {
            addCriterion("delete_status >=", value, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusLessThan(Short value) {
            addCriterion("delete_status <", value, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusLessThanOrEqualTo(Short value) {
            addCriterion("delete_status <=", value, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusIn(List<Short> values) {
            addCriterion("delete_status in", values, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusNotIn(List<Short> values) {
            addCriterion("delete_status not in", values, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusBetween(Short value1, Short value2) {
            addCriterion("delete_status between", value1, value2, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusNotBetween(Short value1, Short value2) {
            addCriterion("delete_status not between", value1, value2, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdIsNull() {
            addCriterion("create_people_id is null");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdIsNotNull() {
            addCriterion("create_people_id is not null");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdEqualTo(String value) {
            addCriterion("create_people_id =", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdNotEqualTo(String value) {
            addCriterion("create_people_id <>", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdGreaterThan(String value) {
            addCriterion("create_people_id >", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdGreaterThanOrEqualTo(String value) {
            addCriterion("create_people_id >=", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdLessThan(String value) {
            addCriterion("create_people_id <", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdLessThanOrEqualTo(String value) {
            addCriterion("create_people_id <=", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdLike(String value) {
            addCriterion("create_people_id like", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdNotLike(String value) {
            addCriterion("create_people_id not like", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdIn(List<String> values) {
            addCriterion("create_people_id in", values, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdNotIn(List<String> values) {
            addCriterion("create_people_id not in", values, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdBetween(String value1, String value2) {
            addCriterion("create_people_id between", value1, value2, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdNotBetween(String value1, String value2) {
            addCriterion("create_people_id not between", value1, value2, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreateTmIsNull() {
            addCriterion("create_tm is null");
            return (Criteria) this;
        }

        public Criteria andCreateTmIsNotNull() {
            addCriterion("create_tm is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTmEqualTo(Date value) {
            addCriterion("create_tm =", value, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmNotEqualTo(Date value) {
            addCriterion("create_tm <>", value, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmGreaterThan(Date value) {
            addCriterion("create_tm >", value, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmGreaterThanOrEqualTo(Date value) {
            addCriterion("create_tm >=", value, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmLessThan(Date value) {
            addCriterion("create_tm <", value, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmLessThanOrEqualTo(Date value) {
            addCriterion("create_tm <=", value, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmIn(List<Date> values) {
            addCriterion("create_tm in", values, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmNotIn(List<Date> values) {
            addCriterion("create_tm not in", values, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmBetween(Date value1, Date value2) {
            addCriterion("create_tm between", value1, value2, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmNotBetween(Date value1, Date value2) {
            addCriterion("create_tm not between", value1, value2, "createTm");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdIsNull() {
            addCriterion("update_people_id is null");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdIsNotNull() {
            addCriterion("update_people_id is not null");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdEqualTo(String value) {
            addCriterion("update_people_id =", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdNotEqualTo(String value) {
            addCriterion("update_people_id <>", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdGreaterThan(String value) {
            addCriterion("update_people_id >", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdGreaterThanOrEqualTo(String value) {
            addCriterion("update_people_id >=", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdLessThan(String value) {
            addCriterion("update_people_id <", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdLessThanOrEqualTo(String value) {
            addCriterion("update_people_id <=", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdLike(String value) {
            addCriterion("update_people_id like", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdNotLike(String value) {
            addCriterion("update_people_id not like", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdIn(List<String> values) {
            addCriterion("update_people_id in", values, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdNotIn(List<String> values) {
            addCriterion("update_people_id not in", values, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdBetween(String value1, String value2) {
            addCriterion("update_people_id between", value1, value2, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdNotBetween(String value1, String value2) {
            addCriterion("update_people_id not between", value1, value2, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdateTmIsNull() {
            addCriterion("update_tm is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTmIsNotNull() {
            addCriterion("update_tm is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTmEqualTo(Date value) {
            addCriterion("update_tm =", value, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmNotEqualTo(Date value) {
            addCriterion("update_tm <>", value, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmGreaterThan(Date value) {
            addCriterion("update_tm >", value, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmGreaterThanOrEqualTo(Date value) {
            addCriterion("update_tm >=", value, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmLessThan(Date value) {
            addCriterion("update_tm <", value, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmLessThanOrEqualTo(Date value) {
            addCriterion("update_tm <=", value, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmIn(List<Date> values) {
            addCriterion("update_tm in", values, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmNotIn(List<Date> values) {
            addCriterion("update_tm not in", values, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmBetween(Date value1, Date value2) {
            addCriterion("update_tm between", value1, value2, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmNotBetween(Date value1, Date value2) {
            addCriterion("update_tm not between", value1, value2, "updateTm");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}